#在线学生信息管理系统
#导入 pymysql库
import pymysql

class Stu:

	def __init__(self):
		#打开数据库连接
		self.db = pymysql.connect(host='localhost',user='root',password='',db='studb',charset='utf8')
		#创建游标对象
		self.cursor = self.db.cursor()

	def execute(self,sql):
		#使用execute()方法执行sql语句
		self.ex = self.cursor.execute(sql)

	def fetchall(self):
		#使用fetchall()方法获取数据
		self.data = self.cursor.fetchall()

		print("|{:^4}| {:<10}| {:<4}| {:^4}| {:10}".format("sid","name","age","sex","class"))
		print("-"*42)
		if len(self.data) == 0:
			print("============= 没有学生信息 ===============")
		else:
			for i in range(len(self.data)):
				print("|{:^4}| {:<10}| {:<4}| {:^4}| {:10}".format(self.data[i][0],self.data[i][1],self.data[i][2],self.data[i][3],self.data[i][4]))

	def delete(self,sql):
		#删除数据
		try:
			self.execute(sql)
			#提交事务
			self.db.commit();
			print("成功删除{}条数据".format(self.ex))
			#self.fetchall()
		except Exception as err:
			#回滚事务
			self.db.rollback();
			print("sql语句执行错误，原因：",err)

	def insert(self,sql):
		#添加数据
		try:
			self.execute(sql)
			#提交事务
			self.db.commit();
			print("成功执行{}条数据".format(self.ex))
			#self.fetchall()
		except Exception as err:
			#回滚事务
			self.db.rollback();
			print("sql语句执行错误，原因：",err)

	def showsys(self):
		#学生信息系统查询界面
		print("="*12+" 学生信息查询系统 "+"="*12)
		print("{:2}{:<15}{:<15}".format(" ","1.查看学生信息","2.添加学生信息"))
		print("{:2}{:<15}{:<15}".format(" ","3.删除学生信息","4.退出"))
		print("="*42)

	def showstu(self):
		#展示学生信息
		self.execute(sql1)
		self.fetchall()

	def __del__(self):
		#关闭数据库
		self.db.close()

sql1 = "select * from stu"
